主题
颜色模型说明 - ColorModel
概述
colorJson / 颜色模型字符串用于在图像处理、图像识别、文字识别等接口中限定颜色范围。 本说明文档统一介绍所有支持的颜色表示方式,接口文档只需简单引用本页即可。
1. JSON 格式(原有写法,完全兼容)
json
[
{
"StartColor": "3278FA",
"EndColor": "6496FF",
"Type": 0,
"ColorSpace": 0,
"GrayMin": 0,
"GrayMax": 0,
"HMin": 0,
"HMax": 0,
"SMin": 0,
"SMax": 0,
"VMin": 0,
"VMax": 0
},
{
"StartColor": "#AABBCC",
"EndColor": "#DDEEFF",
"Type": 1
}
]StartColor/EndColor支持以下形式:#AARRGGBBAARRGGBB#RRGGBBRRGGBB
StartColor也可直接写偏色整串(等价于字符串规则"RRGGBB-DRDGDB"),例如:{"StartColor":"3278FA-101010","EndColor":"","Type":0}
EndColor支持偏色模式(偏色值为十六进制,不是十进制):@101010:R/G/B 各 ±0x10(6 位十六进制偏色,与3278FA-101010效果相同)@10:单通道 ±0x10,其余通道默认 ±0x10@+10+10+-10:R/G 只向上 +0x10,B 双向 ±0x10(+只加不减,无符号或-为双向)- 示例:
{"StartColor":"3278FA","EndColor":"@101010","Type":0} - 示例:
{"StartColor":"3278FA","EndColor":"@+10+10+-10","Type":0}
Type说明:0:正常匹配(保留在颜色范围内的像素)1:反色匹配(保留在颜色范围外的像素)2:正常交集匹配3:反色交集匹配
ColorSpace说明(可选,默认0):0:BGRA颜色空间(沿用StartColor/EndColor的颜色规则)1:灰度空间(使用GrayMin/GrayMax)2:HSV空间(使用HMin/HMax/SMin/SMax/VMin/VMax)
- 灰度与 HSV 字段(可选,缺省按
0处理):GrayMin、GrayMax:仅当ColorSpace=1时生效HMin、HMax、SMin、SMax、VMin、VMax:仅当ColorSpace=2时生效
2. 偏色区间格式:"RRGGBB-DRDGDB"(十六进制偏色)
偏色偏移量 均为十六进制
支持的偏色格式
| 格式 | 示例 | 说明 |
|---|---|---|
| 字符串颜色 | 3278FA-101010 | R/G/B 各 ±0x10,区间 [2268EA, 4288FF] |
| 带透明通道 | FF3278FA-00101010 | AA/RR/GG/BB 各 ±对应十六进制值 |
| 反色 + 偏色 | @3278FA-101010 | 反色模式 + 十六进制偏色 |
| JSON StartColor | {"StartColor":"3278FA-101010","EndColor":"","Type":0} | JSON 中整串写法 |
JSON EndColor @DRDGDB | {"StartColor":"3278FA","EndColor":"@101010","Type":0} | 基准色 + 6 位十六进制偏色 |
| JSON 分通道偏色 | {"StartColor":"3278FA","EndColor":"@+10+10+-10","Type":0} | R/G 只向上,B 双向 ± |
| 字符串规则 | AABBCC-101010|DDEEFF-202020 | 竖线 | 分隔多条规则 |
| 颜色区间 | 000000~FFFFFF | 起止色区间(非偏色,仍支持) |
基本写法
- 基本格式:
"基准色-偏移量",例如:"AABBCC-000000""DDEEFF-202020""3278FA-101010"
- 多个区间用
|分隔,例如:"AABBCC-000000|DDEEFF-202020"
- 含义:
- 左侧为基准色
RRGGBB(或AARRGGBB) - 右侧
DRDGDB(带透明通道时为 8 位,如00101010)表示各通道允许的 十六进制 偏移范围
- 左侧为基准色
偏色计算规则
以 3278FA-101010 为例:
- 基准色:R=
0x32,G=0x78,B=0xFA - 偏色:DR=
0x10,DG=0x10,DB=0x10(不是十进制 10) - 结果区间:
StartColor=2268EA(各通道减0x10)EndColor=4288FF(各通道加0x10)
JSON 中 @101010 与 3278FA-101010 效果相同;@10 表示单通道 ±0x10,其余通道默认 ±0x10。
反色模式
- 在字符串前面加
@即表示反色模式:"@AABBCC-000000|DDEEFF-202020""@3278FA-101010"
3. 颜色区间范围格式:"RRGGBB~RRGGBB"
- 基本格式:
"起始色~结束色",例如:"000000~FFFFFF"表示从#000000到#FFFFFF的连续颜色范围
- 支持多个区间,用
|分隔,例如:"AABBCC~BBCCDD|AAAAAA~FFFFFF"
反色模式
- 在字符串前面加
@即表示反色模式:"@AABBCC~BBCCDD|AAAAAA~FFFFFF"
4. 单独颜色格式
- 支持直接填写单个颜色值:
#AARRGGBBAARRGGBB#RRGGBBRRGGBB
- 支持多个颜色,用
|组合,例如:"#FF0000|00FF00|0000FF"
反色模式
- 在字符串前面加
@表示对这些颜色进行反选:"@FF0000|00FF00"
5. 灰度规则(Gray)
- 精确灰度:
#G(等价#G-0)- 例如:
"#40"、"#125"
- 例如:
- 灰度区间:
#G-dG- 例如:
"#70-10",表示灰度范围[60,80]
- 例如:
反色模式
- 在字符串前面加
@表示对这些颜色进行反选:- 例如:
"@#40" - 例如:
"@#70-10"
- 例如:
6. HSV 规则(OpenCV 语义)
- 精确 HSV:
H.S.V或H,S,V(等价偏移0)- 例如:
"20.30.40"、"20,30,40"
- 例如:
- HSV 区间:
H.S.V-dH.dS.dV(或逗号分隔)- 例如:
"20.30.40-0.0.0"、"20,30,40-0,0,0"
- 例如:
H通道兼容:- 当
H/dH大于179时,自动按0~360输入换算到 OpenCV0~179
- 当
反色模式
- 在字符串前面加
@表示对这些颜色进行反选:- 例如:
"@20.30.40" - 例如:
"@20.30.40-0.0.0"
- 例如:
7. 使用建议
- 简单场景可直接使用单独颜色或颜色区间格式,便于书写。
- 需要精细控制时,推荐使用 JSON 格式并明确设置
Type。 - 不同接口中
colorJson的业务含义略有差异(如过滤背景色 / 限制前景色),具体请参考对应接口文档的简要说明。
